package com.cwt_taxi_xa.model;

/**
 * 围栏
 * @author wlh
 */
public class AreaFence {

	public static final int TYPE_CIRCLE = 1;
	public static final int TYPE_RECTANGLE = 2;

	private int id;
	/**
	 * 围栏类型
	 * 1: 圆形围栏
	 * 2: 矩形围栏
	 * */
	private int fenceType;

	/**区域ID	DWORD*/
	private int areaId;

	/**区域属性	WORD	区域属性定义见表32
	 *
	 * 0	1：根据时间
	 * 1	1：限速
	 * 2	1：进区域报警给驾驶员
	 * 3	1：进区域报警给平台
	 * 4	1：出区域报警给驾驶员
	 * 5	1：出区域报警给平台
	 * 6	0：北纬；1：南纬
	 * 7	0：东经；1：西经
	 * 8	1：稽查区域(报警给平台，切换顶灯显示，但不报警给驾驶员)
	 * 9	1：稽查区域(报警给平台，切换顶灯显示，同时报警给驾驶员)
	 * 10-15	保留
	 * */
	private String areaAttribute;

	/**起始时间	BCD[6]	YY-MM-DD-hh-mm-ss ,若区域属性0位为0则没有该字段*/
	private String startTime;

	/**结束时间	BCD[6]	YY-MM-DD-hh-mm-ss ,若区域属性0位为0则没有该字段*/
	private String endTime;

	/**最高速度	WORD	Km/h，若区域属性1位为0则没有该字段*/
	private int maxSpeed;

	/**超速持续时间	BYTE
	 * 单位为秒(s)(类似表述，同前修改) 若区域属性1位为0则没有该字段
	 */
	private int timeLength;

	/**
	 *  区域顶灯提醒信息	STRING
	 * 进出区域报警、进入稽查区时显示的文本，若区域属性2、3、4、5、8位均为0则无该字段；
	 * 信息字段全部加密，加密算法：附录E
	 */
	private String topLightMessage;

	/**
	 * 区域司机提醒信息	STRING
	 * 进出区域报警、进入稽查区时显示的文本，
	 * 若区域属性2、3、4、5、8位均为0则无该字段
	 * 信息字段全部加密，加密算法：附录E
	 */
	private String driverMessage;

	//圆形围栏属性
	/**中心点纬度	DWORD	以度为单位的纬度值乘以10的6次方，精确到百万分之一度*/
	private double centreLng;

	/**中心点经度	DWORD	以度为单位的经度值乘以10的6次方，精确到百万分之一度*/
	private double centreLat;

	/**半径	DWORD	单位为米(m)，路段为该拐点到下一拐点*/
	private int radius;

	//矩形围栏属性
	/**左上点纬度*/
	private double leftTopLat;
	/**左上点经度*/
	private double leftTopLng;
	/**右下点纬度*/
	private double rightBottomLat;
	/**右下点经度*/
	private double rightBottomLng;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getFenceType() {
		return fenceType;
	}

	public void setFenceType(int fenceType) {
		this.fenceType = fenceType;
	}

	public int getAreaId() {
		return areaId;
	}

	public void setAreaId(int areaId) {
		this.areaId = areaId;
	}

	public String getAreaAttribute() {
		return areaAttribute;
	}

	public void setAreaAttribute(String areaAttribute) {
		this.areaAttribute = areaAttribute;
	}

	public int getRadius() {
		return radius;
	}

	public void setRadius(int radius) {
		this.radius = radius;
	}

	public String getStartTime() {
		return startTime;
	}

	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}

	public String getEndTime() {
		return endTime;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	public int getMaxSpeed() {
		return maxSpeed;
	}

	public void setMaxSpeed(int maxSpeed) {
		this.maxSpeed = maxSpeed;
	}

	public int getTimeLength() {
		return timeLength;
	}

	public void setTimeLength(int timeLength) {
		this.timeLength = timeLength;
	}

	public String getTopLightMessage() {
		return topLightMessage;
	}

	public void setTopLightMessage(String topLightMessage) {
		this.topLightMessage = topLightMessage;
	}

	public String getDriverMessage() {
		return driverMessage;
	}

	public void setDriverMessage(String driverMessage) {
		this.driverMessage = driverMessage;
	}

	public double getCentreLng() {
		return centreLng;
	}

	public void setCentreLng(double centreLng) {
		this.centreLng = centreLng;
	}

	public double getCentreLat() {
		return centreLat;
	}

	public void setCentreLat(double centreLat) {
		this.centreLat = centreLat;
	}

	public double getLeftTopLat() {
		return leftTopLat;
	}

	public void setLeftTopLat(double leftTopLat) {
		this.leftTopLat = leftTopLat;
	}

	public double getLeftTopLng() {
		return leftTopLng;
	}

	public void setLeftTopLng(double leftTopLng) {
		this.leftTopLng = leftTopLng;
	}

	public double getRightBottomLat() {
		return rightBottomLat;
	}

	public void setRightBottomLat(double rightBottomLat) {
		this.rightBottomLat = rightBottomLat;
	}

	public double getRightBottomLng() {
		return rightBottomLng;
	}

	public void setRightBottomLng(double rightBottomLng) {
		this.rightBottomLng = rightBottomLng;
	}
}
